Bonjour,
nous utilisons WP Media Folder v4.2.6.
En recherchant la raison d'un crash de notre site web de production aujourd'hui, nous sommes tombés sur les lignes de code PHP suivantes dans class-media-folder.php :
public function generatePageTree($datas, $parent = 0, $depth = 0, $limit = 0) {
if ($limit > 1000)
return '';
$tree = array();
for ($i = 0, $ni = count($datas); $i < $ni; $i++) {
if (!empty($datas[$i])) {
if ($datas[$i]->parent == $parent) {
$datas[$i]->name = $datas[$i]->name;
$datas[$i]->depth = $depth;
$tree[] = $datas[$i];
$t = $this->generatePageTree($datas, $datas[$i]->term_id, $depth + 1, $limit++);
$tree = array_merge($tree, $t);
}
}
}
return $tree;
}
Le message d'erreur signalé dans le journal d'application était :
PHP Warning: array_merge(): Argument #2 is not an array in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php on line 1310
PHP Fatal error: Uncaught TypeError: Argument 1 passed to Wp_Media_Folder:
arent_sort() must be of the type array, null given, called in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php on line 470 and defined in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php:1327
Après avoir modifié la première ligne de la fonction ci-dessus en "if ($limit > 1500)", le site Web a recommencé à fonctionner.
Pourriez-vous expliquer la raison de la limite de 1 000 appels récursifs et comment l'éviter ou l'augmenter au mieux (par exemple, sans modifications personnalisées directement dans le code du plugin) ?
Cordialement,
vipteam
nous utilisons WP Media Folder v4.2.6.
En recherchant la raison d'un crash de notre site web de production aujourd'hui, nous sommes tombés sur les lignes de code PHP suivantes dans class-media-folder.php :
public function generatePageTree($datas, $parent = 0, $depth = 0, $limit = 0) {
if ($limit > 1000)
return '';
$tree = array();
for ($i = 0, $ni = count($datas); $i < $ni; $i++) {
if (!empty($datas[$i])) {
if ($datas[$i]->parent == $parent) {
$datas[$i]->name = $datas[$i]->name;
$datas[$i]->depth = $depth;
$tree[] = $datas[$i];
$t = $this->generatePageTree($datas, $datas[$i]->term_id, $depth + 1, $limit++);
$tree = array_merge($tree, $t);
}
}
}
return $tree;
}
Le message d'erreur signalé dans le journal d'application était :
PHP Warning: array_merge(): Argument #2 is not an array in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php on line 1310
PHP Fatal error: Uncaught TypeError: Argument 1 passed to Wp_Media_Folder:
Après avoir modifié la première ligne de la fonction ci-dessus en "if ($limit > 1500)", le site Web a recommencé à fonctionner.
Pourriez-vous expliquer la raison de la limite de 1 000 appels récursifs et comment l'éviter ou l'augmenter au mieux (par exemple, sans modifications personnalisées directement dans le code du plugin) ?
Cordialement,
vipteam
- Page :
- 1
Il n'y a pas encore de réponses pour ce post.
